#include "ipc/Ftok.h"
#include "ipc/Cola.h"
#include "ipc/Shm.h"
#include "ipc/EidList.h"
#include "log.h"
#include <stdlib.h>
#include <unistd.h>
#include "tcp/tcp.h"
#include "dtn/ConexionDTN.h"
#include <map>
#include "MensajesControl.h"

#define TEST_URI_MAX  150

int main(int argc, char* argv[]){

    std::string path;
    path = ftok_crear_archivo("DTN");
    if(path.size()==0){
	clog(ROJO, "Error, no se pudo obtener el path para FTOK.\n");
	exit(-1);
    }

    EidList listaEids(path.c_str(), 1);
    listaEids.reset();

    for (long i = 1; i<TEST_URI_MAX; ++i){
	char origen[50];
	sprintf(origen, "EIDURI%ld", i);

	EID eid = listaEids.obtener(origen);

	if(eid.id != 0)
	    clog(ROJO, "EID ENCONTRADO CUANDO NO DEBERIA ESTAR (%s)\n", origen);
	else{
	    clog(VERDE, "EID NO ENCONTRADO, LO AGREGO\n");
	    clog(MAGENTA,"Inserto %ld -> %s en la tabla\n", i, origen);
	    listaEids.insertar(i, origen);
	}
    }

    for (long i = 1; i<TEST_URI_MAX; ++i){
	char origen[50];
	sprintf(origen, "EIDURI%ld", i);

	EID eid = listaEids.obtener(origen);

	if(eid.id != 0)
	    clog(VERDE, "EID ENCONTRADO (%s, id %ld)\n",origen,eid.id);
	else{
	    clog(ROJO, "EID NO ENCONTRADO, ERROR (%s)\n", origen);
	}
    }


    return 0;
}
